package com.allwees.bs.c.module.user.req;

import com.allwees.bs.c.common.auth.constant.EAuthType;
import com.allwees.bs.c.module.app.AppDeviceInfo;
import com.allwees.bs.core.model.user.constant.EUserSourceType;
import com.allwees.bs.core.modelbase.constant.ErrorMessage;
import com.allwees.bs.core.modelbase.req.Req;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;

/**
 * 登录Req
 *
 * @author yangylsky
 *
 */
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public class ThirdPartLoginReq extends Req implements AppDeviceInfo {
	private static final long serialVersionUID = 4249935538985265280L;

	private EAuthType type;

	private EUserSourceType sourceType;

	/**
	 * 邀请人的分享码
	 */
	private String shareCode;

	@NotBlank(message = "token " + ErrorMessage.PARAM_NOT_NULL)
	private String token;

	private String pushId;

	private String deviceSource;

	private String deviceId;

	private String deviceModel;

	private String systemVersion;

	private String market;

	private String bundleId;

	private String appName;

	private String appVersion;

	private Float longitude;

	private Float latitude;

	/**
	 * 用于模拟三方登录测试
	 */
	private String mockEmail;

	/**
	 * 用于模拟三方登录测试
	 */
	private boolean hasEmail = true;
}
